/*
 * TacticaGermo.java
 *
 * Created on 15 de marzo de 2007, 14:20
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package futbol.tacticas.concursantes2007.GermoCanalla;

import futbol.General;
import futbol.tacticas.concursantes.Tactica;

import java.awt.*;
import java.util.Vector;
import futbol.tacticas.*;
/**
 *
 * @author german.frey
 */
public class TacticaGermo implements Tactica{
    
    private int nValores[][]={
        {-150,0,7},  // Jugador 1[0]
        {-115,15,5},  // Jugador 2[1]
        {-115,-15,5},  // Jugador 3[2]
        {-100,-70,3},  // Jugador 4[3]
        {-100,70,3},  // Jugador 5[4]
        {-35,0,4},  // Jugador 6[5]
        {80,70,7},  // Jugador 7[6]
        {80,-70,7},  // Jugador 8[7]
        {60,0,7},  // Jugador 9[8]
        {90,35,6},  // Jugador 10[9]
        {110,-25,6}  // Jugador 11[10]
    };
    
    public Color getColor1() {
        return Color.BLUE;
    }

    public Color getColor2() {
        return Color.BLUE;
    }

    public Color getColorNumero() {
        return Color.YELLOW;
    }

    public String getNombre() {
        return "Germo Canalla";
    }

    public int getXInicial(int n) {
        return nValores[n][0];
    }

    public int getYInicial(int n) {
        return nValores[n][1];
    }

    public int getFuerza(int n) {
        return nValores[n][2];
    }

    public Vector<Comando> getComandos(SituacionJugadores sj) {
        Vector<Comando> com=new Vector();
        //Posicionamiento
        for (int n=0;n<11;n++)
            com.add(new ComandoIrA(n,nValores[n][0],nValores[n][1]));
        
        Point bola=sj.getBola();
        Point jugadores[]=sj.getMisJugadores();
        Point contrarios[]=sj.getContrario();
        
        //Movimiento portero
        int y=(int)(bola.getY()/2);
        if (y<-20) y=-20;
        if (y>20) y=20;
        com.add(new ComandoIrA(0,nValores[0][0], y));
        //Mejorar defensa
        if (!sj.estoyMasCercaDeBola() || bola.getX()<50){
            for (int n=3;n<5;n++){
                int nJC=sj.getContrarioMasCerca(getXInicial(n), getYInicial(n));
                com.add(new ComandoIrA(n, contrarios[nJC].getX()+10, contrarios[nJC].getY()));
            }
        }

        //Movimiento mas cercano a la bola
        int nJug=sj.getMasCercanoDeBola();
        com.add(new ComandoIrA(nJug,bola.getX(), bola.getY()));

        //Golpear bola
        for (int n=0;n<11;n++){
            if(n==5||n==2||n==1){
        		com.add(new ComandoPase(n,8));	
        	}else if(n==3||n==0){
        		com.add(new ComandoPase(n,6));	
        	}else if(n==4){
        		com.add(new ComandoPase(n,6));	
        	}else{
                   com.add(new ComandoTiroAPuerta(n,0));
        	}
            /*if (jugadores[n].getX()<5){
                int nSigJug=sj.getSiguienteJugador(n);
                com.add(new ComandoPase(n, nSigJug));
            }else{
                com.add(new ComandoTiroAPuerta(n,0));
            }*/
        }
        
        return com;
    }
    
}
